# -*- coding: utf-8 -*- 
import xlrd

_col_names = ['id','cn', 'en', 'text']

def open_excel(file='file.xls'):
    try:
        data = xlrd.open_workbook(file)
        return data
    except Exception, e:
        print str(e)
        
# 根据索引获取Excel表格中的数据   
# 参数:file：Excel文件路径    
# colnameindex：表头列名所在行的所以
# by_index：表的索引
def read_table_byindex(data, colnameindex=0, sheet_index=0):
    table = data.sheets()[sheet_index]
    nrows = table.nrows  # 行数
    colnames = table.row_values(colnameindex)  # 某一行数据 
    list = []
    for rownum in range(1, nrows):
        row = table.row_values(rownum)
        if row:
            app = {}
            for i in range(len(colnames)):
                app[colnames[i]] = row[i] 
            list.append(app)
    return list
 
# 根据名称获取Excel表格中的数据   参数:
# file：Excel文件路径     
# colnameindex：表头列名所在行的所以  
# by_name：Sheet1名称
def read_table_byname(data, colnameindex=0, sheet_name=u'Sheet1'):
    table = data.sheet_by_name(sheet_name)
    nrows = table.nrows  # 行数 
    colnames = table.row_values(colnameindex)  # 某一行数据 
    list = []
    for rownum in range(1, nrows):
        row = table.row_values(rownum)
        if row:
            app = {}
            for i in range(len(colnames)):
                app[colnames[i]] = row[i]
                list.append(app)
    return list

def checkCols(data):
    table = data.sheets()[0]
    colNames = table.row_values(0)
    for i in range(0,4):
        if _col_names[i] != colNames[i]:
            return False
    return True

def main():
    data = open_excel('file.xls')
    #验证列名
    if not checkCols(data):
        print '列名有误'
        return
    #生成文件  1 直接生成  2 增量生成
#     tables = read_table_byindex(data)
#         print row
#  
#     tables = excel_table_byname()
#     for row in tables:
#         print row
 
if __name__ == "__main__":
    main()
